home *** CD-ROM | disk | FTP | other *** search
- ---------------------------------------------------------------
- --
- -- PteroProps
- --
- -- by Pan Collette
- --
- -- Create: 13.01.2003
- -- Modified: 06.09.2003
- --
- ---------------------------------------------------------------
-
- macroscript PteroProps category:"PteroTools"
- buttonText:"PteroProps"
- toolTip:"Open PteroProps Panel"
- icon:#("pteroTools", 1)
- (
- if _isPteroPropsOpen == undefined do _isPteroPropsOpen = false
- if not _isPteroPropsOpen do (
- global _isPteroPropsOpen
- global _mainWidth = 180
- global _mainHeight = _mainWidth * 2.5
- global _mainOffset = 8
- global _maxRows = 4
- global _usedRows = 1
- global _rollouts = #()
-
- local version = 0.8
- local scriptPath = ( GetDir #scripts ) + "\\pteroTools"
- local iconPath = ( GetDir #scripts ) + "\\pteroTools"
- local iniPath = ( GetDir #plugcfg )
- local _logFile = scriptPath + "\\!_listener_!.log"
- local _iniFile = iniPath + "\\pteroCollette.ini"
- local _defFile = iniPath + "\\pteroCollette.ini"
- local _matFile = iniPath + "\\pteroColMat.ini"
- local _iniSect = "PteroProps"
- local _defSect = "PropsDefs"
- local _lckIcon = #( ( iconPath + "\\pin13i.bmp" ), ( iconPath + "\\pin13a.bmp" ), 4, 3, 2, 4, 1 )
- local _setIcon = #( ( iconPath + "\\set13i.bmp" ), ( iconPath + "\\set13a.bmp" ), 4, 3, 2, 4, 1 )
- local _defIcon = #( ( iconPath + "\\def13i.bmp" ), ( iconPath + "\\def13a.bmp" ), 4, 3, 2, 4, 1 )
- local _savIcon = #( ( iconPath + "\\sav13i.bmp" ), ( iconPath + "\\sav13a.bmp" ), 4, 3, 2, 4, 1 )
- local _delIcon = #( ( iconPath + "\\del13i.bmp" ), ( iconPath + "\\del13a.bmp" ), 4, 3, 2, 4, 1 )
- local _acqIcon = #( ( iconPath + "\\acq13i.bmp" ), ( iconPath + "\\acq13a.bmp" ), 4, 3, 2, 4, 1 )
- local _tpeIcon = #( ( iconPath + "\\tpe13i.bmp" ), ( iconPath + "\\tpe13a.bmp" ), 4, 3, 2, 4, 1 )
- local _eol = bit.intAsChar 13
- local _oldKeyString = 1
- local _keyName = 2
- local _firstValue = 3
-
- -----------------------------------------------
- -- fnCompWidth()
- -----------------------------------------------
- fn fnCompWidth w = (
- local nw = _mainWidth
- for n = 1 to _maxRows do
- if w >= _mainWidth * n do (
- nw = _mainWidth * n
- _usedRows = n
- )
- return nw
- )
-
- -----------------------------------------------
- -- fnClearProps()
- -----------------------------------------------
- fn fnClearProps obj = (
- local pteroBuffer = getUserPropBuffer obj
- local n = 1
-
- while n < pteroBuffer.count do
- if ( subString pteroBuffer n 1 ) == " " then ( pteroBuffer = ( replace pteroBuffer n 1 "") ) else n += 1
-
- setUserPropBuffer obj pteroBuffer
- return pteroBuffer
- )
-
- -----------------------------------------------
- -- fnReadProp()
- -----------------------------------------------
- fn fnReadProp obj key num:1 = (
- try (
- local strArray = #( key, key )
- local userProps
-
- fnClearProps obj
- strArray[_oldKeyString] += "=" + ( userProps = ( getUserProp obj key ) as string)
- strArray += filterString userProps " ,"
-
- for n = _firstValue to strArray.count do
- if not ( strArray[n] as float ) == undefined then strArray[n] = strArray[n] as float
-
- return strArray
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnReadProp()\n"
- format "--\tobj: %\n" obj
- format "--\tkey: %\n" key
- format "--\tnum: %\n" num
- format "--\tstrArray: %\n" strArray
- format "--\tuserProps: %\n" userProps
- format "--\tn: %\n" n
- format "\n"
- )
- return #("","","")
- )
- )
-
- -----------------------------------------------
- -- fnWriteProp()
- -----------------------------------------------
- fn fnWriteProp obj strArray = (
- try (
- local pteroBuffer = fnClearProps obj
- local valString = strArray[_firstValue]
-
- if strArray[_oldKeyString] == "" and not ( substring pteroBuffer ( pteroBuffer.count - 1 ) 1 ) == _eol do
- strArray[_keyName] = _eol + ( bit.intAsChar 10 ) + strArray[_keyName]
- if _firstValue < strArray.count do
- for n = ( _firstValue + 1 ) to strArray.count do valString += "," + strArray[n]
-
- setUserProp obj strArray[_keyName] valString
- fnClearProps obj
- return true
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnWriteProp()\n"
- format "--\tobj: %\n" obj
- format "--\tstrArray: %\n" strArray
- format "--\tpteroBuffer: %\n" pteroBuffer
- format "--\tvalString: %\n" valString
- format "\n"
- )
- return false
- )
- )
-
- -----------------------------------------------
- -- fnDeleteProp()
- -----------------------------------------------
- fn fnDeleteProp obj key = (
- try (
- local strArray = fnReadProp obj key
- local pteroBuffer = getUserPropBuffer obj
- local keyStart = findString pteroBuffer strArray[_oldKeyString]
- local keyLength = strArray[_oldKeyString].count
-
- if strArray[_firstValue] as string == "undefined" do return false
- if ( substring pteroBuffer ( keyStart + keyLength ) 1 ) == _eol do keyLength += 2
-
- pteroBuffer = replace pteroBuffer keyStart keyLength ""
- setUserPropBuffer obj pteroBuffer
- return true
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnDeleteProp()\n"
- format "--\tobj: %\n" obj
- format "--\tkey: %\n" key
- format "--\tstrArray: %\n" strArray
- format "--\tpteroBuffer: %\n" pteroBuffer
- format "--\tkeyStart: %\n" keyStart
- format "--\tkeyLength: %\n" keyLength
- format "\n"
- )
- return false
- )
- )
-
- -----------------------------------------------
- -- fnSaveINI2()
- -----------------------------------------------
- fn fnSaveINI2 key val = (
- try (
- local res = setINISetting _iniFile _iniSect key val
- return res
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnSaveINI2()\n"
- format "--\tkey: %\n" key
- format "--\tval: %\n" val
- format "--\tres: %\n" res
- format "--\t_iniFile: %\n" _iniFile
- format "--\t_iniSect: %\n" _iniSect
- format "\n"
- )
- return false
- )
- )
-
- -----------------------------------------------
- -- fnLoadINI2()
- -----------------------------------------------
- fn fnLoadINI2 key = (
- try (
- local val = execute ( getINISetting _iniFile _iniSect key )
- return val
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnLoadINI2()\n"
- format "--\tkey: %\n" key
- format "--\tval: %\n" val
- format "--\t_iniFile: %\n" _iniFile
- format "--\t_iniSect: %\n" _iniSect
- format "\n"
- )
- return false
- )
- )
-
- -----------------------------------------------
- -- fnSetControlValue()
- -----------------------------------------------
- fn fnSetControlValue ro key value type:1 = (
- if ( local keyNo = findItem ro.controls key ) == 0 do return false
-
- try (
-
- fn fnDoBoolean value:value = case of (
- ( ( classof value ) == booleanClass ): value
- ( ( value as integer ) == 1 ): true
- ( fnDncase ( value as string ) == "true" ): true
- default: false
- )
- fn fnDoListBox ro:ro keyNo:keyNo value:value type:type = case type of (
- 0: ro.controls[keyNo].items = if classof value == array then value else ( print "Error: fnSetControlValue() - no Array Value"; return false )
- 1: try ( ro.controls[keyNo].selection = value as integer ) catch ( print "Error: fnSetControlValue() - no Integer Value"; return false )
- 2: ro.controls[keyNo].selected = value as string
- )
- case ( classof key ) of (
- CheckBoxControl: ro.controls[keyNo].state = fnDoBoolean()
- CheckButtonControl: ro.controls[keyNo].state = fnDoBoolean()
- RadioControl: ro.controls[keyNo].state = fnDoBoolean()
- ComboBoxControl: fnDoListBox()
- ListBoxControl: fnDoListBox()
- EditTextControl: ro.controls[keyNo].text = value as string
- LabelControl: ro.controls[keyNo].text = value as string
- SpinnerControl: try ( ro.controls[keyNo].value = value as float ) catch ( print "Error: fnSetControlValue() - no Float Value"; return false )
- ColorPickerControl: try ( ro.controls[keyNo].color = value as color ) catch ( print "Error: fnSetControlValue() - no Color Value"; return false )
- default: return false
- )
-
- return true
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnSetControlValue()\n"
- format "--\tro: %\n" ro
- format "--\tkey: %\n" key
- format "--\tval: %\n" val
- format "--\ttype: %\n" type
- format "--\tkeyNo: %\n" keyNo
- format "\n"
- ) return false
- )
- )
-
- -----------------------------------------------
- -- fnGetControlValue()
- -----------------------------------------------
- fn fnGetControlValue ro key type:1 = (
- if ( local keyNo = findItem ro.controls key ) == 0 do return undefined
-
- try (
- fn fnDoBoolean ro:ro keyNo:keyNo = if ro.controls[keyNo].state then 1 else 0
- fn fnDoListBox ro:ro keyNo:keyNo type:type = case type of (
- 0: ro.controls[keyNo].items
- 1: ro.controls[keyNo].selection
- 2: ro.controls[keyNo].selected
- )
- return case ( classof key ) of (
- CheckBoxControl: fnDoBoolean()
- CheckButtonControl: fnDoBoolean()
- RadioControl: fnDoBoolean()
- ComboBoxControl: fnDoListBox()
- ListBoxControl: fnDoListBox()
- EditTextControl: ro.controls[keyNo].text
- LabelControl: ro.controls[keyNo].text
- SpinnerControl: ro.controls[keyNo].value
- ColorPickerControl: ro.controls[keyNo].color
- default: undefined
- )
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnGetControlValue()\n"
- format "--\tro: %\n" ro
- format "--\tkey: %\n" key
- format "--\ttype: %\n" type
- format "--\tkeyNo: %\n" keyNo
- format "\n"
- )
- return undefined
- )
- )
-
- -----------------------------------------------
- -- fnAppendRollOut()
- -----------------------------------------------
- fn fnAppendRollOut ro roName c:true = try (
- local tmp, fFile, str
-
- tmp = #( ro, roName, ( ( ro.fnKeyNames() ).count ), c )
- if c then append _rollouts tmp else insertItem tmp _rollouts 1
-
- return true
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnAppendRollOut()\n"
- format "--\tro: %\n" ro
- format "--\troName: %\n" roName
- format "--\tc: %\n" c
- format "--\ttmp: %\n" tmp
- format "--\tfFile: %\n" fFile
- format "--\tstr: %\n" str
- format "\n"
- )
- return false
- )
-
- -----------------------------------------------
- -- fnFindRollOut()
- -----------------------------------------------
- fn fnFindRollOut ro = try (
- local r = undefined
- for n in _rollouts do (
- if n[1] == ro do r = n
- if r != undefined do exit
- )
- return r
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnFindRollOut()\n"
- format "--\tro: %\n" ro
- format "--\tr: %\n" r
- format "--\tn: %\n" n
- format "\n"
- )
- return undefined
- )
-
- -----------------------------------------------
- -- fnCloseRollOut()
- -----------------------------------------------
- fn fnCloseRollOut ro = (
- local r = fnFindRollOut ro
-
- if _DEBUG_ do format "fnCloseRollOut - ro: %\tr: %\n" ro r
- try (
- fnSaveINI2 ( r[2] + "RolledUp" ) ( ( not ro.open ) as string )
- try ( fnSaveINI2 ( r[2] + "Auto" ) ( ro.btnAuto.checked as string ) ) catch ()
- return true
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnCloseRollOut()\n"
- format "--\tro: %\n" ro
- format "--\tr: %\n" r
- format "\n"
- )
- return false
- )
- )
-
- -----------------------------------------------
- -- fnOpenRollOut()
- -----------------------------------------------
- fn fnOpenRollOut ro keys:1 = ( local tmp
- local r = fnFindRollOut ro
-
- if _DEBUG_ do format "fnOpenRollOut - ro: %\tr: %\n" ro r
-
- try (
- try (
- if not ( tmp = fnLoadINI2 ( r[2] + "Auto" ) ) do tmp = false
- ro.btnAuto.checked = tmp
-
- for n = 1 to r[3] do ro.fnUpdate keyIDX:n read:true
- ) catch ()
-
- if not ( tmp = fnLoadINI2 ( r[2] + "RolledUp" ) ) do tmp = false
- ro.open = not tmp
-
- return true
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnOpenRollOut()\n"
- format "--\tro: %\n" ro
- format "--\tkeys: %\n" keys
- format "--\tr: %\n" r
- format "--\ttmp: %\n" tmp
- format "--\tn: %\n" n
- format "\n"
- )
- fnCloseRollOut ro
- return false
- ) )
-
- -----------------------------------------------
- -- fnSetDefs()
- -----------------------------------------------
- fn fnSetDefs key val = (
- try (
- setINISetting _defFile _defSect key val
- return true
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnSetDefs()\n"
- format "--\tkey: %\n" key
- format "--\tval: %\n" val
- format "--\t_defFile: %\n" _defFile
- format "--\t_defSect: %\n" _defSect
- format "\n"
- )
- return false
- )
- )
-
- -----------------------------------------------
- -- fnGetDefs()
- -----------------------------------------------
- fn fnGetDefs key = (
- local val
- try (
- val = ( execute ( getINISetting _defFile _defSect key ) )
- return val
- ) catch (
- if _DEBUG_ do (
- print "-- Error: fnGetDefs()"
- format "--\tkey: %\n" key
- format "--\tval: %\n" val
- format "--\t_defFile: %\n" _defFile
- format "--\t_defSect: %\n" _defSect
- format "\n"
- )
- return false
- )
- )
-
- -----------------------------------------------
- -- fnAcquire()
- -----------------------------------------------
- fn fnAcquire ro keys:1 = (
- try (
- if ro.btnAcq.checked do (
- ro.btnAcq.enabled = false
- local acqObj = pickObject()
-
- if not acqObj == undefined do if ro == _rollouts[1][1] then
- for r in _rollouts do if r[4] do
- for n = 1 to r[3] do r[1].fnUpdate keyIDX:n acq:true acqObj:acqObj
- else
- for n = 1 to keys do ro.fnUpdate keyIDX:n acq:true acqObj:acqObj
-
- ro.btnAcq.enabled = true
- ro.btnAcq.checked = false
- )
- return true
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnAcquire()\n"
- format "--\tro: %\n" ro
- format "--\tkeys: %\n" keys
- format "--\tacqObj: %\n" acqObj
- format "--\tn: %\n" n
- format "\n"
- )
- return false
- ) )
-
- -----------------------------------------------
- -- fnColor()
- -----------------------------------------------
- fn fnColor ro val:0 type:true keyIDX:1 = (
- try (
- if type then (
- ro.spnClrR.value = val.r as integer
- ro.spnClrG.value = val.g as integer
- ro.spnClrB.value = val.b as integer
- ) else
- ro.clrLight.color = [ ro.spnClrR.value, ro.spnClrG.value, ro.spnClrB.value ] as color
- ro.fnUpdate keyIDX:keyIDX
- return true
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnColor()\n"
- format "--\tro: %\n" ro
- format "--\tval: %\n" val
- format "--\ttype: %\n" type
- format "--\tkeyIDX: %\n" keyIDX
- format "--\tacqObj: %\n" acqObj
- format "\n"
- )
- return false
- )
- )
-
- -----------------------------------------------
- -- fnGetPropsToShow()
- -----------------------------------------------
- fn fnGetPropsToShow = (
- try (
- local pteroBuffer = case selection.count of (
- 1 : getUserPropBuffer $
- default : ""
- )
- fnSetControlValue _rollouts[2][1] _rollouts[2][1].controls[2] pteroBuffer
- return true
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnGetPropsToShow()\n"
- format "--\tpteroBuffer: %\n" pteroBuffer
- format "--\tselection: %\n" $
- format "\n"
- )
- return false
- )
- )
-
- -----------------------------------------------
- -- fnPrintLabel()
- -----------------------------------------------
- fn fnPrintLabel = (
- try (
- local i = 0
- local sName = "S: "
- local sFace = "F: "
- case selection.count of (
- 0 : (
- sName += "None"
- sFace += "0"
- )
- 1 : (
- sName += $.name
- sFace += try ( ( $.mesh.numfaces ) as string ) catch ( "" )
- )
- default : (
- for n in selection do i += try ( n.mesh.numfaces ) catch ( 0 )
- sName += selection.count as string + " selected"
- sFace += i as string
- )
- )
- fnSetControlValue _rollouts[1][1] _rollouts[1][1].controls[1] ( fnCutString s:sName c:25 )
- fnSetControlValue _rollouts[1][1] _rollouts[1][1].controls[2] ( fnCutString s:sFace c:19 )
- return true
- ) catch (
- if _DEBUG_ do (
- format "-- Error: fnPrintLabel()\n"
- format "--\tselection: %\n" $
- format "--\tsName: %\n" sName
- format "--\tsFace: %\n" sFace
- format "--\ti: %\n" i
- format "\n"
- )
- return false
- )
- )
-
- -----------------------------------------------
- -- include rollouts
- -----------------------------------------------
- include "$scripts\\pteroTools\\_aboutRollOut.ms"
- include "$scripts\\pteroTools\\plug_tmp_inc.ms"
-
- -----------------------------------------------
- -- rollout MainRollOut
- -----------------------------------------------
- rollout MainRollOut "PteroProps Panel" rolledUp:false (-- width:179 (
- subrollout sroWindow1 offset:[-10,0] width:(_mainWidth-4)
- subrollout sroWindow2 offset:[(_mainWidth-10),-19] width:(_mainWidth-4)
- subrollout sroWindow3 offset:[(2*_mainWidth-10),-19] width:(_mainWidth-4)
- subrollout sroWindow4 offset:[(3*_mainWidth-10),-19] width:(_mainWidth-4)
-
- --------------------------------------------------------
- -- fnWhichRow()
- --------------------------------------------------------
- fn fnWhichRow r =
- case r of (
- 1: return MainRollOut.sroWindow1
- 2: return MainRollOut.sroWindow2
- 3: return MainRollOut.sroWindow3
- 4: return MainRollOut.sroWindow4
- )
-
- --------------------------------------------------------
- -- fnAddRollOut()
- --------------------------------------------------------
- fn fnAddRollOut r:undefined s:false o:false = (
- local ro_subs = #( #(), #(), #(), #() )
- local sro = undefined
- local k = 1
- local btn_names = #()
- local ro
-
- for i in _rollouts do if r != undefined do
- if (fnDncase i[2]) == (fnDncase r) do sro = i
-
- if sro != undefined do (
-
- if _DEBUG_ do format "\nfnAddRollOut - sro: %\n" sro
-
- if o do if ( s = fnLoadINI2 ( ( sro[1].name as string ) + "Show" ) ) == ok do s = true
-
- if s then ( -- Add rollout to the last free row
- do (
- ro = fnWhichRow k
- if ro.rollouts.count == 0 do exit
- ) while ( k += 1 ) < ( _usedRows + 1 )
- addSubRollout ro sro[1]
- ) else ( -- Remove rollout from row
- do (
- ro = fnWhichRow k
- if ro.rollouts.count == 0 do exit
- if ( findItem ro.rollouts sro[1] ) > 0 do exit
- ) while ( k += 1 ) < ( _usedRows + 1 )
- removeSubRollout ro sro[1]
- )
-
- ro = fnWhichRow 1
-
- include "$scripts\\pteroTools\\plug_tmp_bta.ms"
-
- for b in btn_names do
- if (fnDncase b[1]) == (fnDncase r) do (
- if o do b[2].checked = s
- fnSaveINI2 ( ( sro[1].name as string ) + "Show" ) ( ( b[2].checked ) as string )
- )
- )
-
- if _usedRows > 1 do (
- for k = 1 to _maxRows do ( -- Add all rollouts to the last used row array
- ro = fnWhichRow k
- for i = 1 to ro.rollouts.count do
- append ro_subs[_usedRows] ro.rollouts[i]
- )
-
- for k = 1 to ( _usedRows - 1 ) do ( -- Move rollouts between row arrays
- ro = fnWhichRow k
- h = 0
- while ( h <= ro.height ) do (
- if ro_subs[_usedRows][1] == undefined do exit
- h += if ro_subs[_usedRows][1].open == true then ro_subs[_usedRows][1].height else 20
- if h > ro.height do exit
- append ro_subs[k] ro_subs[_usedRows][1]
- deleteItem ro_subs[_usedRows] 1
- )
- )
-
- for k = 1 to _maxRows do ( -- Remove rollouts from rows
- ro = fnWhichRow k
- for i = 1 to ro.rollouts.count do
- if ro.rollouts[i] != undefined and ro_subs[k][i] != ro.rollouts[i] do removeSubRollout ro ro.rollouts[i]
- )
-
- for k = 1 to _usedRows do ( -- Add rollouts from row arrays to rows
- ro = fnWhichRow k
- for i = 1 to ro_subs[k].count do
- if ro_subs[k][i] != undefined and ( findItem ro.rollouts ro_subs[k][i] ) == 0 do addSubRollout ro ro_subs[k][i]
- )
- )
- )
-
- -----------------------------------------------
- -- rollout ShowPropsRollOut
- -----------------------------------------------
- rollout ShowPropsRollOut "Properties Info" rolledUp:true (
- local _name
- local _RollOut
-
- ---------------------------------------------------------------
- -- init GUI
- ---------------------------------------------------------------
- group "" (
- label lblProps width:144 height:260 align:#center offset:[0,-8]
- )
-
- ---------------------------------------------------------------
- -- Init RollOut
- ---------------------------------------------------------------
- fn fnKeyNames = #( _name )
- fn fnKeyUI = #( #() )
- fn fnKeyDef = #( #() )
- fn fnName = "ShowProps"
- fn fnRollOut = ShowPropsRollOut
- fn fnInitRollOut = (
- local _name = fnName()
- local _RollOut = fnRollOut()
- fnAppendRollOut _RollOut _name c:false
- )
-
- ---------------------------------------------------------------
- -- Event Handler
- ---------------------------------------------------------------
- on ShowPropsRollOut open do (
- _RollOut = fnRollOut()
- _name = fnName()
- fnOpenRollOut _RollOut keys:0
- fnGetPropsToShow()
- )
- on ShowPropsRollOut close do fnCloseRollOut _RollOut
- )
-
- -----------------------------------------------
- -- rollout ButtonsRollOut
- -----------------------------------------------
- rollout RolloutsRollOut "Rollouts" rolledUp:false (
- local _name
- local _RollOut
-
- ---------------------------------------------------------------
- -- init GUI
- ---------------------------------------------------------------
- label lbl1 "S:" width:(_mainWidth / 1.3) align:#left
- label lbl2 "F:" width:(_mainWidth / 1.3) align:#left
- include "$scripts\\pteroTools\\plug_tmp_btn.ms"
- -- checkbox chkbox1 "Auto rollouts" align:#center enabled:false
- button btnrefresh "...::: REFRESH :::..." width:(_mainWidth / 1.3) height:20 align:#center
-
- group "Apply to All" (
- button btnSet "Set" images:_setIcon width:27 height:18 offset:[0,0] across:5 toolTip:"Set All Properties"
- checkbutton btnAcq "Acquire" images:_acqIcon width:27 height:18 offset:[0,0] toolTip:"Acquire All Properties From Node ..."
- button btnDef "Template" images:_defIcon width:27 height:18 offset:[0,0] toolTip:"Use All Templates"
- button btnSav "Save Template" images:_savIcon width:27 height:18 offset:[0,0] toolTip:"Save All Templates"
- button btnDel "Delete" images:_delIcon width:27 height:18 offset:[0,0] toolTip:"Delete All Properties"
- )
-
- ---------------------------------------------------------------
- -- Init RollOut
- ---------------------------------------------------------------
- fn fnKeyNames = #( _name )
- fn fnKeyUI = #( #() )
- fn fnKeyDef = #( #() )
- fn fnName = "Rollouts"
- fn fnRollOut = RolloutsRollOut
- fn fnInitRollOut = (
- local _name = fnName()
- local _RollOut = fnRollOut()
- fnAppendRollOut _RollOut _name c:false
- )
-
- --------------------------------------------------------
- -- event handles
- --------------------------------------------------------
- on btnSet pressed do (
- for r in _rollouts do if r[4] do
- for n = 1 to r[3] do r[1].fnUpdate keyIDX:n write:true
- fnGetPropsToShow()
- fnPrintLabel()
- )
- on btnAcq changed state do (
- fnAcquire _RollOut
- fnGetPropsToShow()
- fnPrintLabel()
- )
- on btnDef pressed do (
- for r in _rollouts do if r[4] do
- for n = 1 to r[3] do r[1].fnUpdate keyIDX:n def:true
- fnGetPropsToShow()
- fnPrintLabel()
- )
- on btnSav pressed do (
- for r in _rollouts do if r[4] do
- for n = 1 to r[3] do r[1].fnUpdate keyIDX:n sav:true
- )
- on btnDel pressed do (
- for r in _rollouts do if r[4] do
- for n = 1 to r[3] do r[1].fnUpdate keyIDX:n del:true
- fnGetPropsToShow()
- fnPrintLabel()
- )
- on btnrefresh pressed do (
- for ro in _rollouts do if ro[4] do
- for n = 1 to ro[3] do ro[1].fnUpdate keyIDX:n read:true
- fnGetPropsToShow()
- fnPrintLabel()
- )
- on RolloutsRollOut open do (
- _RollOut = fnRollOut()
- _name = fnName()
- fnOpenRollOut _RollOut keys:0
- fnGetPropsToShow()
- fnPrintLabel()
- )
- on RolloutsRollOut close do fnCloseRollOut _RollOut
- )
-
- on mainRollout lbuttondown s do fnAddRollOut()
- --------------------------------------------------------
- -- main rollout resized and moved handle
- --------------------------------------------------------
- on mainRollOut resized s do (
- mainRollOut.width = fnCompWidth s.x
- mainRollout.height = if s.y < _mainHeight then _mainHeight else s.y
- mainRollout.sroWindow1.height = mainRollout.height - _mainOffset
- mainRollout.sroWindow2.height = mainRollout.sroWindow3.height = mainRollout.sroWindow4.height = mainRollout.height - _mainOffset --+ 42
- fnAddRollOut()
- )
- on mainRollout moved s do fnAddRollOut()
- --------------------------------------------------------
- -- main rollout open handle
- --------------------------------------------------------
- on mainRollout open do (
- if ( w = fnLoadINI2 "DialogWidth" ) == ok then w = _mainWidth else w = fnCompWidth w
- mainRollOut.width = w
- mainRollout.sroWindow1.height = mainRollout.height - _mainOffset
- mainRollout.sroWindow2.height = mainRollout.sroWindow3.height = mainRollout.sroWindow4.height = mainRollout.height - _mainOffset --+ 42
- ---------------------------------------------------------------
- ---------------------------------------------------------------
- /* fnAppendRollOut aboutRollOut "About" c:false
- fnAppendRollOut ShowPropsRollOut "ShowProps" c:false
- fnAppendRollOut RolloutsRollOut "RollOuts" c:false
- */ aboutRollOut.fnInitRollOut()
- ShowPropsRollOut.fnInitRollOut()
- RolloutsRollOut.fnInitRollOut()
- ---------------------------------------------------------------
- ---------------------------------------------------------------
- for r in _rollouts do fnAddRollOut r:r[2] s:true o:true
-
- _isPteroPropsOpen = true
- )
- --------------------------------------------------------
- -- main rollout close handle
- --------------------------------------------------------
- on mainRollout close do (
- fnSaveINI2 "DialogHeight" ( mainRollout.height as string )
- fnSaveINI2 "DialogWidth" ( mainRollout.width as string )
- fnSaveINI2 "DialogPosition" ( ( getDialogpos mainRollout ) as string )
-
- _isPteroPropsOpen = false
- )
- )
-
- if ( p = fnLoadINI2 "DialogPosition" ) == ok do p = [50,50]
- if ( h = fnLoadINI2 "DialogHeight" ) == ok do h = _mainHeight
- createDialog mainRollOut style:#(#style_toolwindow, #style_sysmenu, #style_resizing) width:_mainWidth height:(if h < _mainHeight then _mainHeight else h) pos:p
- )
- )
-
- macroscript PteroFaceCheck category:"PteroTools"
- buttonText:"Face Check"
- toolTip:"Check Crashed Faces"
- icon:#("pteroTools", 2)
- (
- fnFindSpikeFaces()
- )
-
- macroscript PteroColMatList category:"PteroTools"
- buttonText:"PteroCol Materials List"
- toolTip:"List of PteroCol Materials"
- icon:#("pteroTools", 3)
- (
- fnColMatList()
- )
-